home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #6 / Amiga Plus CD - 1996 - No. 06.iso / pd / programmierung / programmers / medtrkdata.i < prev    next >
Text File  |  1996-06-23  |  5KB  |  137 lines

  1. ; medtrkdata.i --- ext. plr routine version
  2.  
  3. ; The Song structure
  4. ; Instrument data here (504 bytes = 63 * 8)
  5. msng_numblocks    EQU    504
  6. msng_songlen    EQU    506
  7. msng_playseq    EQU    508
  8. msng_deftempo    EQU    764
  9. msng_playtransp    EQU    766
  10. msng_flags    EQU    767
  11. msng_flags2    EQU    768
  12. msng_tempo2    EQU    769
  13. ; msng_trkvol applies to MMD0/MMD1 only.
  14. msng_trkvol    EQU    770
  15. msng_mastervol    EQU    786
  16. msng_numsamples    EQU    787
  17. ; Fields below apply to MMD2 modules only.
  18. msng_pseqs    EQU    508
  19. msng_sections    EQU    512
  20. msng_trkvoltbl    EQU    516
  21. msng_numtracks    EQU    520
  22. msng_numpseqs    EQU    522
  23. msng_trkpan    EQU    524
  24. msng_flags3    EQU    528
  25. msng_voladj    EQU    532
  26. msng_channels    EQU    534
  27. msng_m_echo    EQU    536
  28. msng_m_echodep    EQU    537
  29. msng_m_echolen    EQU    538
  30. msng_m_stsep    EQU    540
  31. FLAG3B_STEREO    EQU    0
  32.  
  33.         RSRESET
  34. ;Fastmem play data structure
  35. fmp_currptr    RS.L    1    ;current sample play pointer
  36. fmp_currlen    RS.L    1    ;remaining sample length
  37. fmp_repeatptr    RS.L    1    ;repeat restart (0 = no repeat)
  38. fmp_repeatlen    RS.L    1    ;repeat length
  39. fmp_bufferptr    RS.L    1    ;DMA audio buffer pointer (buffer 1)
  40. fmp_bufferptr2    RS.L    1    ;DMA audio buffer pointer (buffer 2)
  41. fmp_audioaddr    RS.L    1    ;ptr to channel's audio hardware
  42. fmp_intmask    RS.W    1    ;interrupt mask
  43. fmp_whichbuff    RS.B    1    ;currently used buffer
  44. fmp_active    RS.B    1    ;this points to a meaningful sample
  45. fmp_synstart    RS.B    1    ;start synthetic sound
  46. fmp_pad        RS.B    1
  47. fmp_buffsize    RS.W    1
  48. fmp_sizeof    EQU    __RS
  49.  
  50. ; macros for entering offsets
  51. DEFWORD    MACRO
  52. \1    EQU    OFFS
  53. OFFS    SET    OFFS+2
  54.     ENDM
  55. DEFBYTE    MACRO
  56. \1    EQU    OFFS
  57. OFFS    SET    OFFS+1
  58.     ENDM
  59. DEFLONG    MACRO
  60. \1    EQU    OFFS
  61. OFFS    SET    OFFS+4
  62.     ENDM
  63.  
  64. OFFS    SET    0
  65. ; the track-data structure definition:
  66.     DEFBYTE    trk_prevnote    ;previous note number (0 = none, 1 = C-1..)
  67.     DEFBYTE    trk_previnstr    ;previous instrument number
  68.     DEFBYTE    trk_prevvol    ;previous volume
  69.     DEFBYTE    trk_prevmidich    ;previous MIDI channel
  70.     DEFBYTE    trk_prevmidin    ;previous MIDI note
  71.     DEFBYTE    trk_noteoffcnt    ;note-off counter (hold)
  72.     DEFBYTE    trk_inithold    ;default hold for this instrument
  73.     DEFBYTE    trk_initdecay    ;default decay for....
  74.     DEFBYTE    trk_stransp    ;instrument transpose
  75.     DEFBYTE    trk_finetune    ;finetune
  76.     DEFWORD    trk_soffset    ;new sample offset | don't sep this and 2 below!
  77.     DEFBYTE    trk_miscflags    ;bit: 7 = cmd 3 exists, 0 = cmd E exists
  78.     DEFBYTE    trk_currnote    ;note on CURRENT line (0 = none, 1 = C-1...)
  79.     DEFBYTE    trk_outputdev    ;output device
  80.     DEFBYTE    trk_fxtype    ;fx type: 0 = norm, 1 = none, -1 = MIDI
  81.     DEFLONG    trk_previnstra    ;address of the previous instrument data
  82. ; the following data only on tracks 0 - 3
  83.     DEFLONG    trk_cinfo
  84.     DEFLONG    trk_audioaddr    ;hardware audio channel base address
  85.     DEFLONG    trk_sampleptr    ;pointer to sample
  86.     DEFWORD    trk_samplelen    ;length (>> 1)
  87.     DEFLONG    trk_fmp
  88.     DEFWORD    trk_prevper    ;previous period
  89.     DEFWORD    trk_porttrgper    ;portamento (cmd 3) target period
  90.     DEFBYTE    trk_vibshift    ;vibrato shift for ASR instruction
  91.     DEFBYTE    trk_vibrspd    ;vibrato speed/size (cmd 4 qualifier)
  92.     DEFWORD    trk_vibrsz    ;vibrato size
  93.     DEFLONG    trk_synthptr    ;pointer to synthetic/hybrid instrument
  94.     DEFWORD    trk_arpgoffs    ;SYNTH: current arpeggio offset
  95.     DEFWORD    trk_arpsoffs    ;SYNTH: arpeggio restart offset
  96.     DEFBYTE    trk_volxcnt    ;SYNTH: volume execute counter
  97.     DEFBYTE    trk_wfxcnt    ;SYNTH: waveform execute counter
  98.     DEFWORD    trk_volcmd    ;SYNTH: volume command pointer
  99.     DEFWORD    trk_wfcmd    ;SYNTH: waveform command pointer
  100.     DEFBYTE    trk_volwait    ;SYNTH: counter for WAI (volume list)
  101.     DEFBYTE    trk_wfwait    ;SYNTH: counter for WAI (waveform list)
  102.     DEFWORD    trk_synthvibspd    ;SYNTH: vibrato speed
  103.     DEFWORD    trk_wfchgspd    ;SYNTH: period change
  104.     DEFWORD    trk_perchg    ;SYNTH: curr. period change from trk_prevper
  105.     DEFLONG    trk_envptr    ;SYNTH: envelope waveform pointer
  106.     DEFWORD    trk_synvibdep    ;SYNTH: vibrato depth
  107.     DEFLONG    trk_synvibwf    ;SYNTH: vibrato waveform
  108.     DEFWORD    trk_synviboffs    ;SYNTH: vibrato pointer
  109.     DEFBYTE    trk_initvolxspd    ;SYNTH: volume execute speed
  110.     DEFBYTE    trk_initwfxspd    ;SYNTH: waveform execute speed
  111.     DEFBYTE    trk_volchgspd    ;SYNTH: volume change
  112.     DEFBYTE    trk_prevnote2    ;SYNTH: previous note
  113.     DEFBYTE    trk_synvol    ;SYNTH: current volume
  114.     DEFBYTE    trk_synthtype    ;>0 = synth, -1 = hybrid, 0 = no synth
  115.     DEFLONG    trk_periodtbl    ;pointer to period table
  116.     DEFWORD    trk_prevportspd    ;portamento (cmd 3) speed
  117.     DEFBYTE    trk_decay    ;decay
  118.     DEFBYTE    trk_fadespd    ;decay speed
  119.     DEFLONG    trk_envrestart    ;SYNTH: envelope waveform restart point
  120.     DEFBYTE    trk_envcount    ;SYNTH: envelope counter
  121.     DEFBYTE    trk_split    ;0 = this channel not splitted (OctaMED V2)
  122.     DEFWORD    trk_newper    ;new period (for synth use)
  123.     DEFBYTE    trk_vibroffs    ;vibrato table offset \ DON'T SEPARATE
  124.     DEFBYTE    trk_tremoffs    ;tremolo table offset /
  125.     DEFWORD    trk_tremsz    ;tremolo size
  126.     DEFBYTE    trk_tremspd    ;tremolo speed
  127.     DEFBYTE    trk_tempvol    ;temporary volume (for tremolo)
  128.     DEFWORD    trk_vibradjust    ;vibrato +/- change from base period \ DON'T SEPARATE
  129.     DEFWORD    trk_arpadjust    ;arpeggio +/- change from base period/
  130.     DEFWORD    trk_trackvol
  131. TRACKDATASZ    EQU    OFFS
  132.  
  133. DMACON    EQU    $DFF096
  134. INTENA    EQU    $DFF09A
  135. INTREQ    EQU    $DFF09C
  136.  
  137.